Electronic processing of graphic and text images produces multi-color prints using multiple color separations. Typically, four process colors, cyan, magenta, yellow and black, are used to print multiple separations, which tend to have minor misregistration problems. The result of abutting or overlapping shapes is a boundary between adjacent regions of color that, under ideal printing conditions should have zero width. That is, one color should stop exactly where the abutting color begins, with no new colors being introduced along the boundary by the printing process itself. In practice, the realization of a zero width boundary between regions of different color is impossible as a result of small but visible misregistration problems from one printed separation to another. The error is manifested as a “light leak” or as a visible boundary region of an undesired color.
Methods for correcting for this misregistration are known. The general approach is to expand one of the abutting regions' separations to fill the gap or misregistration border region with a color determined to minimize the visual effect when printed. Borders or edges expanded from a region of one color to another in this manner are said to be “spread”. A border which has been expanded is referred to as a “trap”, and the zone within which color is added is called the “trap zone”.
Trapping is a generally a two step process. The first step in the trapping process is to determine where there is an edge on which to apply trapping. Trapping is typically used between pixels that are not of identical color, but it can be used in other locations as well. The second step is to generate the overlay of one or more pixels, in any combination of the color separations, which is done by a trap generator or trap oracle. The two inputs for the trap generator are the colors on both sides of the edge in question. For example, consider magenta and cyan, with a user-specified maximum trap width of two. The generator will compute from these whether trapping is necessary, what color to use, and where it should be applied. In this example, the correction could be zero (no trapping), one, or two pixels in width in any combination of cyan, magenta, yellow and black, and it could be located in either the magenta or cyan area. Edge detection and image manipulation to perform trapping may be done in any of several processes, including for example, the technique described in U.S. Pat. No. 6,345,117 to Victor Klassen, for “Method for Automatic Trap Selection for Correcting for Separation Misregistration in Color Printing”.
For the typical trapping operation, it is assumed that objects to be trapped are very large relative to the trapping region, so that the trap colors will be difficult to distinguish. Thus, the color of only a thin boundary of the object will be changed, while the large internal area will have the original, correct color. However, for objects smaller than a few pixels, or for long, thin objects having a width less than a few pixels, trapping results in visible hue changes in the color of the entire object. For example, if a thin line is only two pixels in width, and the trap generator decides to change the color of those two pixels, the entire color of the thin line has been changed. Small objects, such as small font size text characters, may be printed in an entirely different color. If the thin line, or the small object, happens to be located near a larger object of the same initial color, there will be a visible hue shift relative to the larger object, and the result of the trapping operation will be less desirable than no trapping at all.
Run length encoding is a type of lossless compression which utilizes the fact that many files frequently contain the same character repeated many times in a row. For example, text files use multiple spaces to separate sentences, indent paragraphs, format tables and charts, etc. Digitized signals can also have runs of the same value, indicating that the signal is not changing. For example, in a data sequence having frequent runs of zeros, each time a zero is encountered in the input data, two values are written to the output file. The first of these is a zero, a flag to indicate that run length compression is beginning. The second is the number of zeros in the run. If the average run length is longer than two, compression will take place. Many different run length encoding schemes have been developed.
Co-assigned application Ser. No. 09/538,596 filed Mar. 29, 2000, for “Method for Trapping Suppression for Thin Graphical Objects Using Run Length Encoded Data”, (D/A0062) describes a technique for suppressing trapping for the boundary between two color areas where one is a thin line by testing the number of pixels which make up the thickness of the areas, the decision being based on run length encoded image data. The method of D/A0062 disables trapping for objects with a dimension smaller than a threshold value. Although this reduces the hue shift for “regular” rectangular objects, irregular trapping occurs at the edges of small and complex graphical objects (where local dimensions may be near or below the threshold), for example, small text or thin triangles. It is therefore desirable to reduce the hue shift for these small objects while preserving the continuity of traps along the edges.